using System.ComponentModel.DataAnnotations;
using MiniExcelLibs.Attributes;

namespace ZR.Model.Dto
{
    /// <summary>
    /// 土地出让公告信息查询对象
    /// </summary>
    public class V3TdsyqDealBehaviorInfoQueryDto : PagerInfo 
    {
        public string BidArea { get; set; }
        public int? AnId { get; set; }
        public string DataKey { get; set; }
        public string PushStatus { get; set; }
        public string AnnouncementTitle { get; set; }
        public DateTime? BeginPublishingTime { get; set; }
        public DateTime? EndPublishingTime { get; set; }
    }

    /// <summary>
    /// 土地出让公告信息输入输出对象
    /// </summary>
    public class V3TdsyqDealBehaviorInfoDto
    {
        [ExcelColumn(Name = "系统区域")]
        public string BidArea { get; set; }

        [ExcelColumn(Name = "业务公告ID")]
        public int? AnId { get; set; }

        [Required(ErrorMessage = "ID不能为空")]
        [ExcelColumn(Name = "ID")]
        [JsonConverter(typeof(ValueToStringConverter))]
        public long TdcrggId { get; set; }

        [ExcelColumn(Name = "粤公平主键")]
        public string DataKey { get; set; }

        [ExcelColumn(Name = "推送状态")]
        public string PushStatus { get; set; }

        [ExcelColumn(Name = "粤公平日志")]
        public string YgpLog { get; set; }

        [Required(ErrorMessage = "项目编号不能为空")]
        [ExcelColumn(Name = "项目编号")]
        public string AnnouncementGuid { get; set; }

        [Required(ErrorMessage = "项目名称不能为空")]
        [ExcelColumn(Name = "项目名称")]
        public string LandProjectName { get; set; }

        [ExcelColumn(Name = "招拍挂类型")]
        public string ListingType { get; set; }

        [Required(ErrorMessage = "公告标题不能为空")]
        [ExcelColumn(Name = "公告标题")]
        public string AnnouncementTitle { get; set; }

        [Required(ErrorMessage = "统一交易标识码不能为空")]
        [ExcelColumn(Name = "统一交易标识码")]
        public string UnifiedDealCode { get; set; }

        [Required(ErrorMessage = "公告归属行政区划不能为空")]
        [ExcelColumn(Name = "公告归属行政区划")]
        public string RegionCode { get; set; }

        [Required(ErrorMessage = "交易发生行政区域代码不能为空")]
        [ExcelColumn(Name = "交易发生行政区域代码")]
        public string TraPlaceCode { get; set; }

        [Required(ErrorMessage = "交易机构名称不能为空")]
        [ExcelColumn(Name = "交易机构名称")]
        public string TraAgencyName { get; set; }

        [Required(ErrorMessage = "交易机构代码不能为空")]
        [ExcelColumn(Name = "交易机构代码")]
        public string TraAgencyCode { get; set; }

        [Required(ErrorMessage = "交易业务类型代码不能为空")]
        [ExcelColumn(Name = "交易业务类型代码")]
        public string ClassifyCode { get; set; }

        [Required(ErrorMessage = "国家分类代码不能为空")]
        [ExcelColumn(Name = "国家分类代码")]
        public string CnProjectType { get; set; }

        [Required(ErrorMessage = "公告内容不能为空")]
        [ExcelColumn(Name = "公告内容")]
        public string AnnouncementConnect { get; set; }

        [Required(ErrorMessage = "项目所在行政区划代码不能为空")]
        [ExcelColumn(Name = "项目所在行政区划代码")]
        public string LandDistrict { get; set; }

        [ExcelColumn(Name = "公告源URL")]
        public string Url { get; set; }

        [Required(ErrorMessage = "项目状态不能为空")]
        [ExcelColumn(Name = "项目状态")]
        public string ProjectStatus { get; set; }

        [Required(ErrorMessage = "发布时间不能为空")]
        [ExcelColumn(Name = "发布时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? PublishingTime { get; set; }

        [Required(ErrorMessage = "供应方式不能为空")]
        [ExcelColumn(Name = "供应方式")]
        public string SupplyType { get; set; }

        [ExcelColumn(Name = "修改日期", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? ChangeTime { get; set; }

        [ExcelColumn(Name = "撤回时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? RetreatTime { get; set; }

        [Required(ErrorMessage = "公告单位不能为空")]
        [ExcelColumn(Name = "公告单位")]
        public string AnnouncementUnit { get; set; }

        [Required(ErrorMessage = "结束日期不能为空")]
        [ExcelColumn(Name = "结束日期", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? EndDate { get; set; }

        [Required(ErrorMessage = "公告性质不能为空")]
        [ExcelColumn(Name = "公告性质")]
        public string NoticeNature { get; set; }

        [Required(ErrorMessage = "公告类型不能为空")]
        [ExcelColumn(Name = "公告类型")]
        public string AnnouncementType { get; set; }

        [Required(ErrorMessage = "公告编号不能为空")]
        [ExcelColumn(Name = "公告编号")]
        public string AnnouncementCode { get; set; }

        [Required(ErrorMessage = "公告开始时间不能为空")]
        [ExcelColumn(Name = "公告开始时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? AnnouncementStartTime { get; set; }

        [Required(ErrorMessage = "公告结束时间不能为空")]
        [ExcelColumn(Name = "公告结束时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? AnnouncementDeadline { get; set; }

        [ExcelColumn(Name = "招拍挂开始时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? ListingStartTime { get; set; }

        [ExcelColumn(Name = "招拍挂结束时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? ListingDeadline { get; set; }

        [Required(ErrorMessage = "联系单位不能为空")]
        [ExcelColumn(Name = "联系单位")]
        public string LiaisonUnit { get; set; }

        [Required(ErrorMessage = "联系人不能为空")]
        [ExcelColumn(Name = "联系人")]
        public string ContactPerson { get; set; }

        [ExcelColumn(Name = "联系电话")]
        public string ContactNumber { get; set; }

        [ExcelColumn(Name = "联系地址")]
        public string UnitAddress { get; set; }

        [ExcelColumn(Name = "邮政编码")]
        public string ZipCode { get; set; }

        [ExcelColumn(Name = "电子邮箱")]
        public string Email { get; set; }

        [ExcelColumn(Name = "撤销原因")]
        public string CancelReason { get; set; }

        [ExcelColumn(Name = "开户单位")]
        public string AccountBank { get; set; }

        [ExcelColumn(Name = "开户行")]
        public string BasicBank { get; set; }

        [ExcelColumn(Name = "银行帐号")]
        public string BasicBranchBank { get; set; }

        [Required(ErrorMessage = "宗地数量不能为空")]
        [ExcelColumn(Name = "宗地数量")]
        public int FieldNum { get; set; }

        [Required(ErrorMessage = "申请方式不能为空")]
        [ExcelColumn(Name = "申请方式")]
        public string PassedApplicantList { get; set; }

        [ExcelColumn(Name = "申请人其他条件")]
        public string OtherConditions { get; set; }

        [Required(ErrorMessage = "地块简介不能为空")]
        [ExcelColumn(Name = "地块简介")]
        public string BidOpeningAddress { get; set; }

        [Required(ErrorMessage = "是否网上交易不能为空")]
        [ExcelColumn(Name = "是否网上交易")]
        public string IsNetworkSymbol { get; set; }

        [ExcelColumn(Name = "报名地址URL")]
        public string RegistrationUrl { get; set; }

        [Required(ErrorMessage = "交易系统标识码不能为空")]
        [ExcelColumn(Name = "交易系统标识码")]
        public string PlatformCode { get; set; }

        [Required(ErrorMessage = "交易服务系统标识码不能为空")]
        [ExcelColumn(Name = "交易服务系统标识码")]
        public string PubServicePlatCode { get; set; }

        [Required(ErrorMessage = "数据时间戳不能为空")]
        [ExcelColumn(Name = "数据时间戳", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? DataTimestamp { get; set; }

        [ExcelColumn(Name = "创建人编码")]
        public string CreateBy { get; set; }

        [ExcelColumn(Name = "创建时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? CreateTime { get; set; }

        [ExcelColumn(Name = "更新人")]
        public string UpdateBy { get; set; }

        [ExcelColumn(Name = "更新时间", Format = "yyyy-MM-dd HH:mm:ss")]
        public DateTime? UpdateTime { get; set; }

        [ExcelColumn(Name = "备注")]
        public string Remark { get; set; }



    }
}